As is well-known, a so-called bar code is scanned using a scanning device that emits a thin beam of light generated by a source, e.g., a laser or light emitting diode, etc. The scanning device may be a so-called hand-held light pen/wand that is manually swept across the bar code. As the light pen moves across the bar code, the light beam is reflected by the white segments (spaces) of the bar code and is absorbed by the black segments (bars).
A light sensitive scanner, e.g., a photodiode, outputs an electrical signal in response to the reflected light. Thus, the presence and absence of such signals are used to detect a bar-to-space transition and space-to-bar transition as well as the interval (i.e., the width of a space or bar) between the transition. The interval is typically measured by counting the number of clock signals outputted by a source of such signals that occur within the interval, i.e., between transitions. The value of the count along with a "sign" character indicating whether the interval is a space or bar is sent to a processor. The processor stores the count and its sign in memory.
It can be appreciated that the value of an interval count for a particular space or bar of a bar code will be proportional to the speed at which a light pen is swept across the bar code. The count will be high if such speed is low and vice-versa. Moreover, the speed at which a light pen is swept across a bar code typically increases substantially near the end of the swipe. In that case, then, the interval count for a bar that is scanned at the beginning of the swipe will be much larger than the interval count for a bar of the same width that is scanned at the end of the swipe.
Decoders or correlators which process the output of a light pen to determine the numerical and/or alphabetical representation of the scanned bar code account for the differences in the width of a bar that are due to differences in the speed at which a light pen is swept across a bar code. Such accounting is based on determining the relative widths of the bars and spaces with respect to one another within some margin of error. For example, if the width of a bar is found to be 1.5 to 2.5 times greater than the width of another bar determined to have a width of one unit, then such processing concludes that the width of the former bar is twice that of the latter bar. However, in a case where the width of a scanned bar is actually twice the width of a one unit bar but is reported to be, for example, 1.4 times greater than that width, then the processor would conclude, based on relative weighting, that the width of the former bar was one unit wide. Thus, the scanning of the bar code could lead to an incorrect result.